package com.dearbinge.data.dao.im;

import com.dearbinge.data.pojo.im.ImUserApply;
import com.dearbinge.data.pojo.im.vo.ImUserApplyVO;
import org.apache.ibatis.annotations.Param;
import org.mapstruct.Mapper;

import java.util.List;

/**
 * 好友申请dao
 *
 * @author wes
 * @date 2019/2/27
 */
@Mapper
public interface ImUserApplyMapper {

    /**
     * 删除
     * @param id id
     * @return 结果
     */
    int deleteByPrimaryKey(Integer id);

    /**
     * 插入
     * @param imUserApply 实体类
     * @return 结果
     */
    int insert(ImUserApply imUserApply);

    /**
     * 根据id查询
     * @param id 关系id
     * @return 实体对象
     */
    ImUserApply getByPrimaryKey(Integer id);

    /**
     * 更新
     * @param imUserApply 实体类
     * @return 结果
     */
    int update(ImUserApply imUserApply);

    /**
     * 根据用户ID查询好友申请列表
     *
     * @param friendId 被申请的好友
     * @return 申请列表
     */
    List<ImUserApplyVO> listByFriendId(Integer friendId);

    /**
     * 统计数量 根据用户ID查询好友申请列表
     *
     * @param friendId 被申请的好友
     * @return 总数
     */
    Integer countByFriendId(Integer friendId);

    /**
     * 根据用户ID和好友id查询
     *@param userId 申请的用户id
     * @param friendId 被申请的好友
     * @return 申请列表
     */
    ImUserApplyVO getByUserIdAndFriendId(@Param("userId") Integer userId,@Param("friendId") Integer friendId);

}